<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" 
    import="java.util.*,java.sql.*"  
	session="true" errorPage="jsp2.jsp" %><!--设置session为false时,不可直接使用session隐含对象-->
	<!--errorPage 当页面出错时转发到jsp2.jsp  -->
<html>
<head>
<title>jsp1</title>
</head>
<body>
<!-- JSP声明:为servlet增加新的属性和方法  -->
<!-- 用于为当前类声明 属性/方法/静态成员等   编译以后会成为 Servlet 中的成员 -->
	<%! 
	int i = 100; //可声明变量
	int sum (int a1,int a2){//也可声明方法
		return a1+a2; 
	}
	%>
	
<!-- JSP表达式:用于计算表达式值并显示  -->
	<%=i+100 %><br>
	<%=sum(20,30) %><br>
	
	<%=session.getId() %><br><!-- session默认隐含对象,本来可直接使用,设置session为false时,此处会编译出错 -->
	
<!-- JSP代码块:可以嵌入 "Java 程序脚本代码" -->	
	<% 
	String number = request.getParameter("number"); 
	long now = System.currentTimeMillis();
    long year = now/1000/60/60/24/365 + 1970;
    
    //演示request对象的功能: 读取请求中的数据
    String ua = request.getHeader("User-Agent");
    
	%><br>
	
	<%=Integer.parseInt(number)*2 %><br>
	<p><%=now/1000%60%></p>
    <p><%=year%></p>
	<%=pageContext.getAttribute("money") %> <!--访问网站/jsp1.jsp?number=100可正常访问jsp1.jsp   拿不到jsp2的money,pageContext只属于jsp2.jsp-->
    
    <h1>内置对象功能演示</h1>
    <p>User-Agent:
    <%
        //在p标签里面显示ua信息
        out.println(ua); 
    %>
    </p>
    <%
        // pageContext 页面上下文, 包含当前页面全部相关信息
        // pageContext.getOut() 返回对象就是 out 对象    其功能与out对象相同
        JspWriter o = pageContext.getOut();
    %>
    <p>User-Agent: <% o.println(ua); %> </p>
</body>
</html>